Computer networks, such as the Internet, are increasingly being used to transmit audio-visual data. One common example is the incorporation of a music video in a World-Wide Web page as a "video clip". A video clip is a sequence of images intended to be displayed in rapid succession to show an animation or "movie", and may incorporate an audio channel for the integration both graphic and audio information to be played by a web browser which is enabled to access such a data. Video clips typically require an enormous number of bits to effectively code the information contained therein. The amount of data in a single digital image can be extremely large, even on the order of millions of bytes. For example, a 640.times.480 pixel image occupies 307,200 bytes of storage if one byte per pixel is used. A video clip which contains a series of digital images to form a motion sequence along with a channel for digitized audio data is still more demanding. To transmit a video clip containing audio and video data over a network, server and client computers on the network stream the data serially from the server to the client. Because the amount of data required to represent a typical video clip is so large, image compression techniques are utilized to reduce the amount of data transmitted. Image compression requires an encoder to compress the source data and a decoder to decompress the compressed data.
The quality of a video clip transmitted between a server and client computer over a network depends largely on the bandwidth of the network. Bandwidth refers to the maximum number of transactions per second and the number of bits per transaction that a network can transmit from one node coupled to the network to another node coupled to the network. A complex video clip requires a high bandwidth network to accommodate the transmission and decoding of all of the bits which represent the graphic and audio components of the clip. If insufficient bandwidth is available, the number of bits transmitted is reduced, and consequently the image or sound is distorted or not fully represented.
Network bandwidth is a factor of each of the elements in the data path between the nodes, such as computers, which transmit and receive the data. In many computer network environments, the primary element which limits the bandwidth is the network interface device which interface the server and client computers to the networks. For the popular Internet network, such interface devices include modems and ethernet controllers. Present network interface devices for general purpose networking use, such as modems, typically provide data bandwidth that supports a streaming bit-rate of between 19 Kbits/second to 28 Kbits/second. A low average bit rate for these devices would thus be around 22 Kbits/second. For a video clip which contains both graphic and audio data, this bandwidth must be apportioned between the two types of data. One example of such an apportionment for a 22 Kbit/second bandwidth channel would be to allocate a 16 Kbit/second channel for the graphic data and 6 Kbits/second for the audio data. For a video containing a sequence of digital images, a bit rate of 16 Kbits/second is generally considered to be the minimum acceptable rate. At a rate below 16 Kbits/second the quality of the video is generally unacceptable because either the resolution of the images is too low, or the frame rate is so slow that individual frame sequencing is readily apparent (that is, the movement of objects in a video appears to stutter). Unfortunately, providing at least 16 Kbits/second of bandwidth for the video at 22 Kbits/second leaves only 6 Kbits/second for the audio channel. For most audio applications involving music, a bit rate of 6 Kbits/second may be enough only to provide the basic melody with substantial artifacts and without any of the depth or higher order musical information that might be available in the original signal. Thus, present data streaming techniques for the transmission of video clips over the Internet fail to provide a satisfying experience because of the limited bandwidth available to the audio and video channels.
Present application programs which display audio/visual sequences, such as web browsers, utilize techniques which facilitate the re-display of downloaded images, however they do not provide mechanisms which improve the quality of the images. Typical web browsers utilize cache memory to temporarily store the streamed video data which has been decompressed. Cache memory is used to store a digitized image so that the image is available for subsequent access without requiring that the data be re-transmitted from the server to the client. Thus, a second access to a web page image or a video clip accesses data from the cache rather than over the network, to the extent that the data is available in the cache. Present web browsers, however, store only the originally transmitted data in the cache. Thus a user repeatedly accessing a particular video clip views the same clip with the same quality experience each time.
It is thus desirable to provide a method of improving the quality of a transmitted video clip by increasing the effective bandwidth available for the transmission and playback of the video clip. It is further desirable to provide a method of displaying video clips which utilize the cached data to improve the quality of subsequent viewing instances.